#e
#Title[]u\l̎̂Ɠ̓v]
#Text[105bԑϋvB]
#ScriptVersion[2]

script_enemy_main {
	let name	= "]u\l̎̂Ɠ̓v";
	let imgHonoka=GetCurrentScriptDirectory~"img\honoka.png";
    	let csd         = GetCurrentScriptDirectory;
    	let shotImage   = csd ~ "data_usershot.txt";
	let GreenWaku	= 28;
	let WhiteSmall	= 16;
	let BigBlue	= 54;
	let RedSmall	= 9;
	let YellowNormal= 35;
	let WhiteNormal	= 40;
	let YellowHari	= 59;
	let WhiteZayaku	= 96;
	let Aqua	= 149;
	let WhiteBig	= 56;
	let RedZayaku	= 89;
	let RedBig	= 49;

	let wIni = 120;
	let frame	= 400;
	
	///////////////////////////////////////////////////////////

	@Initialize{
        CutIn(YOUMU, name, "", 0, 0, 0, 0);
	LoadGraphic(imgHonoka);
	    
        SetMovePosition02(GetCenterX(), GetCenterY, 60);
        SetLife(10);
        SetTimer(107);
	SetScore(800000);
        SetDamageRate(100, 20);
	SetInvincibility( 260 );
        LoadUserShotData(shotImage);
	SetDurableSpellCard;

	TMain();
	TSub();

	}
		
	@MainLoop{

	    yield;
	}
	
	@DrawLoop{
	    SetTexture(imgHonoka);
	    DrawGraphic(GetX(), GetY());
	}
		
	@Finalize{
	    DeleteGraphic(imgHonoka);
	}

	task TMain{

	    yield;
	    loop(120){ yield; }
	    loop(160){
	    one;
	    loop(1){ yield; }
	    }
	    loop(100){ yield; }
	    two;
	    loop(400){ yield; }
	    three;
	    loop(300){ yield; }
	    four;
	    loop(100){ yield; }
	    five;
	    loop(100){ yield; }
	    six;
	    loop(100){ yield; }
	    seven;
	    loop(300){ yield; }
	    eight;
	    loop(100){ yield; }
	    nine;
	    loop(200){ yield; }
	    ten;
	    loop(200){ yield; }
	    loop(160){
	    one;
	    loop(1){ yield; }
	    }
	    loop(50){ yield; }
	    two;
	    loop(200){ yield; }
	    three;
	    loop(100){ yield; }
	    four;
	    loop(50){ yield; }
	    five;
	    loop(50){ yield; }
	    six;
	    loop(50){ yield; }
	    seven;
	    loop(150){ yield; }
	    eight;
	    loop(50){ yield; }
	    nine;
	    loop(100){ yield; }
	    ten;
	    loop(100){ yield; }
	    loop(160){
	    one;
	    loop(1){ yield; }
	    }
	    two;
	    three;
	    four;
	    five;
	    six;
	    seven;
	    eight;
	    nine;
	    ten;
	}


	task TSub{
	SetGraphicRect(64,1,127,64);
	loop(60){ yield; }
	SetGraphicRect(0,0,0,0);
	}
	

	//////////////////////////////////////////////////////////

	sub one{
	CreateShotA(001,rand(GetClipMinX,GetClipMaxX),rand(GetClipMinY,GetClipMaxY),30);
	SetShotDataA(001,0,2,rand(0,360),0,0,2,GreenWaku);
	SetShotKillTime(001,30);
	FireShot(001);
	}

	sub two{
	let BaseX	= GetClipMinX;
	let BaseY	= GetClipMinY;
	ascent(let i in 0..60){
	CreateShotA(001,BaseX+(i*7),BaseY,20);
	SetShotDataA(001,0,0,rand(70,110),0,0,0,WhiteSmall);
	SetShotDataA(001,rand(80,100),0,NULL,0,0.01,4,WhiteSmall);
	FireShot(001);
	}
	ascent(let i in 0..37){
	CreateShotA(001,BaseX+64+(i*7),BaseY+64,20);
	SetShotDataA(001,0,0,rand(70,110),0,0,0,WhiteSmall);
	SetShotDataA(001,rand(80,100),0,NULL,0,0.01,4,WhiteSmall);
	FireShot(001);
	}
	let BaseX2	= GetClipMaxX;
	let BaseY2	= GetClipMaxY;
	ascent(let i in 0..60){
	CreateShotA(001,BaseX2-(i*7),BaseY2,20);
	SetShotDataA(001,0,0,rand(70,110),0,0,0,WhiteSmall);
	SetShotDataA(001,rand(80,100),0,NULL,0,0.01,4,WhiteSmall);
	FireShot(001);
	}
	ascent(let i in 0..37){
	CreateShotA(001,BaseX2-64-(i*7),BaseY2-64,20);
	SetShotDataA(001,0,0,rand(70,110),0,0,0,WhiteSmall);
	SetShotDataA(001,rand(80,100),0,NULL,0,0.01,4,WhiteSmall);
	FireShot(001);
	}
	let BaseX3	= GetClipMinX;
	let BaseY3	= GetClipMinY;
	ascent(let i in 0..80){
	CreateShotA(001,BaseX3,BaseY3+(i*7),20);
	SetShotDataA(001,0,0,rand(70,110),0,0,0,WhiteSmall);
	SetShotDataA(001,rand(80,100),0,NULL,0,0.01,4,WhiteSmall);
	FireShot(001);
	}
	ascent(let i in 0..47){
	CreateShotA(001,BaseX3+64,BaseY3+64+(i*7),20);
	SetShotDataA(001,0,0,rand(70,110),0,0,0,WhiteSmall);
	SetShotDataA(001,rand(80,100),0,NULL,0,0.01,4,WhiteSmall);
	FireShot(001);
	}
	let BaseX4	= GetClipMaxX;
	let BaseY4	= GetClipMinY;
	ascent(let i in 0..80){
	CreateShotA(001,BaseX4,BaseY4+(i*7),20);
	SetShotDataA(001,0,0,rand(70,110),0,0,0,WhiteSmall);
	SetShotDataA(001,rand(80,100),0,NULL,0,0.01,4,WhiteSmall);
	FireShot(001);
	}
	ascent(let i in 0..47){
	CreateShotA(001,BaseX4-64,BaseY4+64+(i*7),20);
	SetShotDataA(001,0,0,rand(70,110),0,0,0,WhiteSmall);
	SetShotDataA(001,rand(80,100),0,NULL,0,0.01,4,WhiteSmall);
	FireShot(001);
	}
	}

	sub three{
	let r		= 200;
	let om		= 3;
	let arg		= 0;
	let arg2	= 90;
	let arg3	= 180;
	let arg4	= 270;
	let graphic	= BigBlue;
	let delay	= 30;
	let obj		= Obj_Create(OBJ_SHOT);
	let obj2		= Obj_Create(OBJ_SHOT);
	let obj3		= Obj_Create(OBJ_SHOT);
	let obj4		= Obj_Create(OBJ_SHOT);
        
        //p[^̐ݒ
        Obj_SetPosition(obj, GetPlayerX + r*cos(arg),
                             GetPlayerY + r*sin(arg));
        Obj_SetSpeed(obj, 0);
        Obj_SetAngle(obj, arg);
        Obj_SetAutoDelete(obj, false);
        ObjShot_SetGraphic(obj, graphic);
        ObjShot_SetDelay(obj, delay);
	ObjShot_SetBombResist(obj,true);

        Obj_SetPosition(obj2, GetPlayerX + r*cos(arg2),
                             GetPlayerY + r*sin(arg2));

        Obj_SetSpeed(obj2, 0);
        Obj_SetAngle(obj2, arg2);
        Obj_SetAutoDelete(obj2, false);
        ObjShot_SetGraphic(obj2, graphic);
        ObjShot_SetDelay(obj2, delay);
	ObjShot_SetBombResist(obj2,true);
        

        Obj_SetPosition(obj3, GetPlayerX + r*cos(arg3),
                             GetPlayerY + r*sin(arg3));

        Obj_SetSpeed(obj3, 0);
        Obj_SetAngle(obj3, arg3);
        Obj_SetAutoDelete(obj3, false);
        ObjShot_SetGraphic(obj3, graphic);
        ObjShot_SetDelay(obj3, delay);
	ObjShot_SetBombResist(obj3,true);
        

        Obj_SetPosition(obj4, GetPlayerX + r*cos(arg4),
                             GetPlayerY + r*sin(arg4));

        Obj_SetSpeed(obj4, 0);
        Obj_SetAngle(obj4, arg4);
        Obj_SetAutoDelete(obj4, false);
        ObjShot_SetGraphic(obj4, graphic);
        ObjShot_SetDelay(obj4, delay);
	ObjShot_SetBombResist(obj4,true);
        
        
        
        loop(delay){ yield; }
        
        let t=0;
	let count=0;
	let count2=0;
        while(!Obj_BeDeleted(obj)){
        Obj_SetPosition(obj, GetPlayerX + r*cos(om*t + arg),
                             GetPlayerY + r*sin(om*t + arg));
        Obj_SetAngle(obj, om*t + arg);

        Obj_SetPosition(obj2, GetPlayerX + r*cos(om*t + arg2),
                             GetPlayerY + r*sin(om*t + arg2));
        Obj_SetAngle(obj2, om*t + arg2);

        Obj_SetPosition(obj3, GetPlayerX + r*cos(om*t + arg3),
                             GetPlayerY + r*sin(om*t + arg3));
        Obj_SetAngle(obj3, om*t + arg3);

        Obj_SetPosition(obj4, GetPlayerX + r*cos(om*t + arg4),
                             GetPlayerY + r*sin(om*t + arg4));
        Obj_SetAngle(obj4, om*t + arg4);
	if(count2==5){
	CreateShotA(001,Obj_GetX(obj),Obj_GetY(obj),20);
	SetShotDataA(001,0,0,rand(0,360),0,0,0,RedSmall);
	SetShotDataA(001,80,0,NULL,0,0.01,4,RedSmall);
	FireShot(001);
	CreateShotA(002,Obj_GetX(obj2),Obj_GetY(obj2),20);
	SetShotDataA(002,0,0,rand(0,360),0,0,0,RedSmall);
	SetShotDataA(002,80,0,NULL,0,0.01,4,RedSmall);
	FireShot(002);
	CreateShotA(003,Obj_GetX(obj3),Obj_GetY(obj3),20);
	SetShotDataA(003,0,0,rand(0,360),0,0,0,RedSmall);
	SetShotDataA(003,80,0,NULL,0,0.01,4,RedSmall);
	FireShot(003);
	CreateShotA(004,Obj_GetX(obj4),Obj_GetY(obj4),20);
	SetShotDataA(004,0,0,rand(0,360),0,0,0,RedSmall);
	SetShotDataA(004,80,0,NULL,0,0.01,4,RedSmall);
	FireShot(004);
	count2=0;
	}
        
            t++;
	    count++;
	    count2++;
            yield;
	if(count==250){
	Obj_Delete(obj);
	Obj_Delete(obj2);
	Obj_Delete(obj3);
	Obj_Delete(obj4);
	}
	}
	}

	sub four{
	loop(25){
	CreateShot01(rand(GetClipMinX,GetClipMaxX),GetClipMinY,5,90,YellowNormal,30);
	CreateShot01(rand(GetClipMinX,GetClipMaxX),GetClipMaxY,5,270,WhiteNormal,30);
	loop(5){ yield; }
	}
	}

	sub five{
	let obj 	= Obj_Create(OBJ_SHOT);
	let obj2 	= Obj_Create(OBJ_SHOT);
	let obj3 	= Obj_Create(OBJ_SHOT);
	let obj4 	= Obj_Create(OBJ_SHOT);
	let obj5 	= Obj_Create(OBJ_SHOT);
	let obj6 	= Obj_Create(OBJ_SHOT);
	let obj7 	= Obj_Create(OBJ_SHOT);
	let obj8 	= Obj_Create(OBJ_SHOT);
	let obj9 	= Obj_Create(OBJ_SHOT);
	let obj10 	= Obj_Create(OBJ_SHOT);
	let obj11 	= Obj_Create(OBJ_SHOT);
	let obj12 	= Obj_Create(OBJ_SHOT);

	Obj_SetPosition(obj,GetCenterX,GetCenterY);
	Obj_SetAngle(obj,0);
	Obj_SetSpeed(obj,3);
        Obj_SetAutoDelete(obj, false);
	ObjShot_SetDelay(obj,20);
	ObjShot_SetGraphic(obj,YellowHari);

	Obj_SetPosition(obj2,GetCenterX,GetCenterY);
	Obj_SetAngle(obj2,45);
	Obj_SetSpeed(obj2,3);
        Obj_SetAutoDelete(obj2, false);
	ObjShot_SetDelay(obj2,20);
	ObjShot_SetGraphic(obj2,YellowHari);

	Obj_SetPosition(obj3,GetCenterX,GetCenterY);
	Obj_SetAngle(obj3,90);
	Obj_SetSpeed(obj3,3);
        Obj_SetAutoDelete(obj3, false);
	ObjShot_SetDelay(obj3,20);
	ObjShot_SetGraphic(obj3,YellowHari);

	Obj_SetPosition(obj4,GetCenterX,GetCenterY);
	Obj_SetAngle(obj4,135);
	Obj_SetSpeed(obj4,3);
        Obj_SetAutoDelete(obj4, false);
	ObjShot_SetDelay(obj4,20);
	ObjShot_SetGraphic(obj4,YellowHari);

	Obj_SetPosition(obj5,GetCenterX,GetCenterY);
	Obj_SetAngle(obj5,180);
	Obj_SetSpeed(obj5,3);
        Obj_SetAutoDelete(obj5, false);
	ObjShot_SetDelay(obj5,20);
	ObjShot_SetGraphic(obj5,YellowHari);

	Obj_SetPosition(obj6,GetCenterX,GetCenterY);
	Obj_SetAngle(obj6,225);
	Obj_SetSpeed(obj6,3);
        Obj_SetAutoDelete(obj6, false);
	ObjShot_SetDelay(obj6,20);
	ObjShot_SetGraphic(obj6,YellowHari);

	Obj_SetPosition(obj7,GetCenterX,GetCenterY);
	Obj_SetAngle(obj7,270);
	Obj_SetSpeed(obj7,3);
        Obj_SetAutoDelete(obj7, false);
	ObjShot_SetDelay(obj7,20);
	ObjShot_SetGraphic(obj7,YellowHari);

	Obj_SetPosition(obj8,GetCenterX,GetCenterY);
	Obj_SetAngle(obj8,315);
	Obj_SetSpeed(obj8,3);
        Obj_SetAutoDelete(obj8, false);
	ObjShot_SetDelay(obj8,20);
	ObjShot_SetGraphic(obj8,YellowHari);

	Obj_SetPosition(obj9,GetClipMinX,GetClipMinY);
	Obj_SetAngle(obj9,60);
	Obj_SetSpeed(obj9,3);
        Obj_SetAutoDelete(obj9, false);
	ObjShot_SetDelay(obj9,20);
	ObjShot_SetGraphic(obj9,YellowHari);

	Obj_SetPosition(obj10,GetClipMaxX,GetClipMinY);
	Obj_SetAngle(obj10,120);
	Obj_SetSpeed(obj10,3);
        Obj_SetAutoDelete(obj10, false);
	ObjShot_SetDelay(obj10,20);
	ObjShot_SetGraphic(obj10,YellowHari);

	Obj_SetPosition(obj11,GetClipMinX,GetClipMaxY);
	Obj_SetAngle(obj11,300);
	Obj_SetSpeed(obj11,3);
        Obj_SetAutoDelete(obj11, false);
	ObjShot_SetDelay(obj11,20);
	ObjShot_SetGraphic(obj11,YellowHari);

	Obj_SetPosition(obj12,GetClipMaxX,GetClipMaxY);
	Obj_SetAngle(obj12,240);
	Obj_SetSpeed(obj12,3);
        Obj_SetAutoDelete(obj12, false);
	ObjShot_SetDelay(obj12,20);
	ObjShot_SetGraphic(obj12,YellowHari);

        while(!Obj_BeDeleted(obj)){
	loop(50){ yield; }
	ascent(let i in 0..6){
	CreateShot01(Obj_GetX(obj),Obj_GetY(obj),rand(1.5,3),rand(0,360),GreenWaku,20);
	CreateShot01(Obj_GetX(obj2),Obj_GetY(obj2),rand(1.5,3),rand(0,360),GreenWaku,20);
	CreateShot01(Obj_GetX(obj3),Obj_GetY(obj3),rand(1.5,3),rand(0,360),GreenWaku,20);
	CreateShot01(Obj_GetX(obj4),Obj_GetY(obj4),rand(1.5,3),rand(0,360),GreenWaku,20);
	CreateShot01(Obj_GetX(obj5),Obj_GetY(obj5),rand(1.5,3),rand(0,360),GreenWaku,20);
	CreateShot01(Obj_GetX(obj6),Obj_GetY(obj6),rand(1.5,3),rand(0,360),GreenWaku,20);
	CreateShot01(Obj_GetX(obj7),Obj_GetY(obj7),rand(1.5,3),rand(0,360),GreenWaku,20);
	CreateShot01(Obj_GetX(obj8),Obj_GetY(obj8),rand(1.5,3),rand(0,360),GreenWaku,20);
	CreateShot01(Obj_GetX(obj9),Obj_GetY(obj9),rand(1.5,3),rand(0,360),GreenWaku,20);
	CreateShot01(Obj_GetX(obj10),Obj_GetY(obj10),rand(1.5,3),rand(0,360),GreenWaku,20);
	CreateShot01(Obj_GetX(obj11),Obj_GetY(obj11),rand(1.5,3),rand(0,360),GreenWaku,20);
	CreateShot01(Obj_GetX(obj12),Obj_GetY(obj12),rand(1.5,3),rand(0,360),GreenWaku,20);
	}
	Obj_Delete(obj);
	Obj_Delete(obj2);
	Obj_Delete(obj3);
	Obj_Delete(obj4);
	Obj_Delete(obj5);
	Obj_Delete(obj6);
	Obj_Delete(obj7);
	Obj_Delete(obj8);
	Obj_Delete(obj9);
	Obj_Delete(obj10);
	Obj_Delete(obj11);
	Obj_Delete(obj12);
	}
	}

	sub six{
	let r	= 30;
	let om	= 3;
	let arg	= 0;
	let t	= 0;
	loop(90){
	CreateShotA(001,GetPlayerX + r*cos(om*t + arg),GetPlayerY + r*sin(om*t + arg),20);
	SetShotDirectionType(PLAYER);
	SetShotDataA(001,0,3,arg+180,0,0,3,WhiteZayaku);
	SetShotDataA(001,70,3,5,0,0,3,WhiteZayaku);
	FireShot(001);
	t++;
	yield;
	}
	}

	sub seven{
	let base	= rand(0,360);
	ascent(let i in 0..32){
	CreateShotA(001,GetCenterX,GetClipMinY,20);
	SetShotDataA(001,0,1,base+i*360/32,0,0,3,Aqua);
	SetShotDataA(001,50,NULL,NULL,7,0,3,Aqua);
	SetShotDataA(001,55,NULL,NULL,0,0,3,Aqua);
	CreateShotA(002,GetCenterX,GetClipMinY,20);
	SetShotDataA(002,0,1,base+i*360/32,0,0,3,Aqua);
	SetShotDataA(002,50,NULL,NULL,-7,0,3,Aqua);
	SetShotDataA(002,55,NULL,NULL,0,0,3,Aqua);
	FireShot(001);
	FireShot(002);
	}
	ascent(let i in 0..32){
	CreateShotA(001,GetCenterX,GetClipMaxY,20);
	SetShotDataA(001,0,1,base+i*360/32,0,0,3,Aqua);
	SetShotDataA(001,50,NULL,NULL,7,0,3,Aqua);
	SetShotDataA(001,55,NULL,NULL,0,0,3,Aqua);
	CreateShotA(002,GetCenterX,GetClipMaxY,20);
	SetShotDataA(002,0,1,base+i*360/32,0,0,3,Aqua);
	SetShotDataA(002,50,NULL,NULL,-7,0,3,Aqua);
	SetShotDataA(002,55,NULL,NULL,0,0,3,Aqua);
	FireShot(001);
	FireShot(002);
	}
	ascent(let i in 0..32){
	CreateShotA(001,GetClipMinX,GetCenterY,20);
	SetShotDataA(001,0,1,base+i*360/32,0,0,3,Aqua);
	SetShotDataA(001,50,NULL,NULL,7,0,3,Aqua);
	SetShotDataA(001,55,NULL,NULL,0,0,3,Aqua);
	CreateShotA(002,GetClipMinX,GetCenterY,20);
	SetShotDataA(002,0,1,base+i*360/32,0,0,3,Aqua);
	SetShotDataA(002,50,NULL,NULL,-7,0,3,Aqua);
	SetShotDataA(002,55,NULL,NULL,0,0,3,Aqua);
	FireShot(001);
	FireShot(002);
	}
	ascent(let i in 0..32){
	CreateShotA(001,GetClipMaxX,GetCenterY,20);
	SetShotDataA(001,0,1,base+i*360/32,0,0,3,Aqua);
	SetShotDataA(001,50,NULL,NULL,7,0,3,Aqua);
	SetShotDataA(001,55,NULL,NULL,0,0,3,Aqua);
	CreateShotA(002,GetClipMaxX,GetCenterY,20);
	SetShotDataA(002,0,1,base+i*360/32,0,0,3,Aqua);
	SetShotDataA(002,50,NULL,NULL,-7,0,3,Aqua);
	SetShotDataA(002,55,NULL,NULL,0,0,3,Aqua);
	FireShot(001);
	FireShot(002);
	}
	}

	sub eight{
	loop(30){
	SetShotDirectionType(ABSOLUTE);
	CreateShot01(rand(GetClipMinX,GetClipMaxX),GetClipMinY,2,rand(80,100),WhiteSmall,20);
	CreateShot01(rand(GetClipMinX,GetClipMaxX),GetClipMinY,2,rand(80,100),WhiteNormal,20);
	CreateShot01(rand(GetClipMinX,GetClipMaxX),GetClipMinY,2,rand(80,100),WhiteBig,20);
	loop(5){ yield; }
	}
	}

	sub nine{
	let BaseX = GetClipMaxX;
	let BaseY = GetClipMaxY;
	ascent(let i in 0..56){
	CreateShotA(001,BaseX-(i*7),BaseY,20);
	SetShotDirectionType(PLAYER);
	SetShotDataA(001,0,0,0,0,0,0,RedZayaku);
	SetShotDataA(001,100,3,0,0,0,3,RedZayaku);
	FireShot(001);
	yield;
	}
	let BaseX3 = GetClipMinX;
	let BaseY3 = GetClipMaxY;
	ascent(let i in 0..64){
	CreateShotA(001,BaseX3,BaseY3-(i*7),20);
	SetShotDirectionType(PLAYER);
	SetShotDataA(001,0,0,0,0,0,0,RedZayaku);
	SetShotDataA(001,100,3,0,0,0,3,RedZayaku);
	FireShot(001);
	yield;
	}
	let BaseX2 = GetClipMinX;
	let BaseY2 = GetClipMinY;
	ascent(let i in 0..56){
	CreateShotA(001,BaseX2+(i*7),BaseY2,20);
	SetShotDirectionType(PLAYER);
	SetShotDataA(001,0,0,0,0,0,0,RedZayaku);
	SetShotDataA(001,100,3,0,0,0,3,RedZayaku);
	FireShot(001);
	yield;
	}
	let BaseX4 = GetClipMaxX;
	let BaseY4 = GetClipMinY;
	ascent(let i in 0..64){
	CreateShotA(001,BaseX4,BaseY4+(i*10),20);
	SetShotDirectionType(PLAYER);
	SetShotDataA(001,0,0,0,0,0,0,RedZayaku);
	SetShotDataA(001,100,3,0,0,0,3,RedZayaku);
	FireShot(001);
	yield;
	}
	}

	sub ten{
	let Base	= rand(0,360);
	ascent(let i in 0..32){
	SetShotDirectionType(ABSOLUTE);
	CreateShotA(001,GetCenterX,GetCenterY,30);
	SetShotDataA(001,0,1,Base+i*360/32,0,0,1,RedBig);
	CreateShotA(002,GetCenterX,GetCenterY,30);
	SetShotDataA(002,0,1,Base+i*360/32,0,0,1,RedBig);
	SetShotDataA(002,100,1.5,NULL,0,0,2,RedBig);
	CreateShotA(003,GetCenterX,GetCenterY,30);
	SetShotDataA(003,0,1,Base+i*360/32,0,0,1,RedBig);
	SetShotDataA(003,100,2,NULL,0,0,3,RedBig);
	FireShot(001);
	FireShot(002);
	FireShot(003);
	}
	}
	

    // w t[҂
    function wait(w) {
        loop(w) { yield; }
    }
}